package clases;

import java.io.File;
import java.util.List;

import tipos.Cadenas;
import tipos.Camino;
import tipos.FlujoEntrada;

public class CargarPartida {
	
	public CargarPartida () {}
	
	public Partida cargarPartida(String nomFich) {
		Partida partida = null;
		File fichero = new File(nomFich);
		if (fichero.exists()) {
			Iterable<String> it = new FlujoEntrada(nomFich);
			for (String st : it) {
				List<String> list = Cadenas.separaElementos(st, ";");
				if (list.size() == 1) {
					String nomTablero = list.get(0);
					partida = new Partida(nomTablero);
				} else {
					Tablero tablero = partida.getTablero();
					Camino cam = new Camino();
					for (String s : list) {
						List<String> listAux = Cadenas.separaElementos(s, ",");
						Integer fila = new Integer(Integer.valueOf(listAux.get(0)));
						Integer columna = new Integer(Integer.valueOf(listAux.get(1)));
						Casilla cas = tablero.getCasilla(fila, columna);
						cam.addCasilla(cas);
					}
					if ((cam.getLongitud() == cam.getRecorrido().get(0).getDigito()) && 
							(cam.getRecorrido().get(0).getDigito() == cam.getRecorrido().get(cam.getLongitud()-1).getDigito())) {
						partida.getCaminos().add(cam);
						for (Casilla cas : cam.getRecorrido()) {
							cas.setCamino(cam);
						}
					}
				}
			}
		}
		else {
			System.out.println("La partida buscada no existe");
		}
		return partida;
	}

}
